package com.ybkj.daijia.server.mapper;

import com.ybkj.daijia.server.model.DriverRechargeRecord;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Param;

public interface DriverRechargeRecordMapper {
    /**
     * 保存司机充值记录
     *
     * @param record
     * @return
     */
//	int insertRecord(DriverRechargeRecord record);

    /**
     * 根据主键查询司机充值记录
     *
     * @param id
     * @return
     */
//	DriverRechargeRecord selectByPrimaryKey(Long id);

    /**
     * 根据一组主键查询司机充值记录
     *
     * @param ids
     * @return
     */
//	List<DriverRechargeRecord> selectByIdIn(Long ids[]);

    /**
     * 根据主键删除司机充值记录
     *
     * @param id
     * @return
     */
//	int deleteByPrimaryKey(Long id);

    /**
     * 根据司机id删除司机充值记录
     *
     * @param id
     * @return
     */
    int deleteByDriverId(@Param("driverId") Long driverId);

    /**
     * 根据主键修改司机充值记录
     *
     * @param record
     * @return
     */
//	int updateByPrimaryKey(DriverRechargeRecord record);

    /**
     * 根据司机主键计算费用总和
     *
     * @param driverId
     * @return
     */
//	BigDecimal sumPositiveMoneyByDriver(@Param("driverId") Long driverId);

    /**
     * 根据公司查询费用总和
     *
     * @param companyId
     * @return
     */
//	BigDecimal sumAllPositiveMoneyByCompany(@Param("companyId") Long companyId);

    /**
     * 查询所有费用总和
     *
     * @return
     */
//	BigDecimal sumAllPositiveMoney();
//	BigDecimal sumNowMoney(@Param("companyId")Long companyId, @Param("deduct")Integer deduct,
//			@Param("name")String param,@Param("rechargeType")Integer type, @Param("start")Date start, @Param("end")Date end);

    /**
     * 根据订单号查询充值记录
     *
     * @param orderId
     * @return
     */
//	List<DriverRechargeRecord> selectByOrderId(@Param("orderId") Long orderId);

    /**
     * 根据订单号查询充值记录
     *
     * @param orderId
     * @return
     */
    DriverRechargeRecord selectByTypeAndOrderId(@Param("rechargeType") Integer rechargeType,
        @Param("orderId") Long orderId);

//	List<DriverRechargeRecord> selectByDriverAndTypeWithCreated(@Param("driverId") Long driverId,
//			@Param("rechargeType") Integer rechargeType, @Param("start") Date start, @Param("end") Date end);

    /**
     * 根据参数查询司机充值信息
     *
     * @param prams
     * @return
     */
    List<DriverRechargeRecord> selectByParams(Map<String, Object> params);

//	List<DriverRechargeRecord> selectRebate(Map<String, Object> params);
//	long countRebate(Map<String, Object> params);

    /**
     * 根据参数统计司机充值记录
     *
     * @param prams
     * @return
     */
    long countByParams(Map<String, Object> params);

    /**
     * 根据条件查询司机充值信息
     *
     * @param prams
     * @return
     */
//	List<DriverRechargeRecord> selectByDriverRecharge(Map<String, Object> params);
    /**
     * 根据查询条件统计司机充值记录数
     * @param prams
     * @return
     */
//	long countByDriverRecharge(Map<String, Object> params);


    /**
     * 根据公司是日期查询金额
     *
     * @param companyId
     * @param start
     * @param end
     * @return
     */
//	BigDecimal sumMoneyByCompanyWithDate(@Param("companyId")Long companyId, 
//			@Param("start")Date start, @Param("end")Date end);
//
//	BigDecimal sumByDriverAndType(@Param("driverId") Long driverId,
//			@Param("rechargeType") Integer rechargeType);

    List<DriverRechargeRecord> selectAll();


}
